﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Resources;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QLThuVien
{
    public partial class frCapNhatSach : Form
    {
        public frCapNhatSach()
        {
            InitializeComponent();
            close_box();
            empty_box();
        }
        public void empty_box()
        {
            tbmasach.Text = "";
            tbnamxb.Text = "";
            cbvitriluutru.Text = "";
            cbncc.Text = "";
            tbgia.Text = "";
            tbtensach.Text = "";
            cblsach.Text = "";
            cbngonngu.Text = "";
            cbNXB.Text = "";
            cbtacgia.Text = "";
            tblxuatban.Text = "";
        }
        public void open_box()
        {
            tbmasach.Enabled = true;
            tbnamxb.Enabled = true;
            cbvitriluutru.Enabled = true;
            cbncc.Enabled = true;
            tbgia.Enabled = true;
            tbtensach.Enabled = true;
            cblsach.Enabled = true;
            cbngonngu.Enabled = true;
            cbNXB.Enabled = true;
            cbtacgia.Enabled = true;
            tblxuatban.Enabled = true;
        }
        public void close_box()
        {
            tbmasach.Enabled = false;
            tbnamxb.Enabled = false;
            cbvitriluutru.Enabled = false;
            cbncc.Enabled = false;
            tbgia.Enabled = false;
            tbtensach.Enabled = false;
            cblsach.Enabled = false;
            cbngonngu.Enabled = false;
            cbNXB.Enabled = false;
            cbtacgia.Enabled = false;
            tblxuatban.Enabled = false;
        }
        DataSet ds = new DataSet();
        public void load_listview()
        {
            int i = 0;
            listView1.Clear();
            KetNoi.setconnect();
            Truyxuatdulieu txdl = new Truyxuatdulieu();
            SqlCommand sc = new SqlCommand();
            sc.CommandText = "SELECT *FROM SACH,LOAISACH,NGONNGU,NXB,TACGIA,SANGTAC,NHACUNGCAP,VITRI WHERE SACH.MANGONNGU=NGONNGU.MANGONNGU AND SACH.MALOAISACH=LOAISACH.MALOAISACH AND SACH.MANXB=NXB.MANXB AND SACH.MASACH=SANGTAC.MASACH AND TACGIA.MATACGIA=SANGTAC.MATACGIA AND SACH.MANCC=NHACUNGCAP.MANCC AND SACH.MAVT=VITRI.MAVT";
            SqlDataReader dr = txdl.lay_reader(sc.CommandText);
            while (dr.Read())
            {
                listView1.Items.Add((i + 1).ToString());
                listView1.Items[i].SubItems.Add(dr["MASACH"].ToString());
                listView1.Items[i].SubItems.Add(dr["TENSACH"].ToString());
                listView1.Items[i].SubItems.Add(dr["TENLOAISACH"].ToString());
                listView1.Items[i].SubItems.Add(dr["TENNXB"].ToString());
                listView1.Items[i].SubItems.Add(dr["HOTEN"].ToString());
                listView1.Items[i].SubItems.Add(dr["NGONNGU"].ToString());
                listView1.Items[i].SubItems.Add(dr["GIA"].ToString());
                listView1.Items[i].SubItems.Add(dr["NAMXUATBAN"].ToString());
                listView1.Items[i].SubItems.Add(dr["LANXUATBAN"].ToString());
                listView1.Items[i].SubItems.Add(dr["TENNCC"].ToString());
                listView1.Items[i].SubItems.Add(dr["MAVT"].ToString());
                i++;
            }
        }

        private void frCapNhatSach_Load(object sender, EventArgs e)
        {
            load_listview();
            listView1.Columns.Add("stt", 37, HorizontalAlignment.Left);
            listView1.Columns.Add("Mã Sách", 60, HorizontalAlignment.Left);
            listView1.Columns.Add("Tên Sách", 120, HorizontalAlignment.Left);
            listView1.Columns.Add("Loại Sách", 90, HorizontalAlignment.Left);
            listView1.Columns.Add("Nhà Xuất Bản", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("Tác giả", 120, HorizontalAlignment.Left);
            listView1.Columns.Add("Ngôn Ngữ", 90, HorizontalAlignment.Left);
            listView1.Columns.Add("Giá", 80, HorizontalAlignment.Left);
            listView1.Columns.Add("Năm Xuất Bản", 90, HorizontalAlignment.Left);
            listView1.Columns.Add("Lần Xuất Bản", 80, HorizontalAlignment.Left);
            listView1.Columns.Add("Nhà Cung Cấp", 120, HorizontalAlignment.Left);
            listView1.Columns.Add("Vị Trí Lưu Trữ", 80, HorizontalAlignment.Left);
        }

        private void btthem_Click(object sender, EventArgs e)
        {
            if (btthem.Text == "Thêm")
            {
                open_box();
                load_group();
                btthem.Text = "Chấp Nhận";
                btsua.Enabled = false;
                btxoa.Enabled = false;
            }

            else if (btthem.Text == "Chấp Nhận")
            {

                try
                {
                    string maloai, mann, matg, maxb, mancc;
                    Sach ls = new Sach();
                    ls.set_masach(tbmasach.Text);
                    ls.set_gia(Convert.ToInt16(tbgia.Text));
                    ls.set_tensach(tbtensach.Text);
                    ls.set_namxuaban(Convert.ToInt16(tbnamxb.Text));
                    ls.set_lanxuatban(Convert.ToInt16(tblxuatban.Text));
                    ls.set_mavitri(cbvitriluutru.Text);
                    Truyxuatdulieu txdl = new Truyxuatdulieu();
                    KetNoi.setconnect();
                    SqlDataReader dr1 = txdl.lay_reader("select *from NGONNGU");
                    while (dr1.Read())
                    {
                        if (Convert.ToString(dr1["NGONNGU"]) == cbngonngu.Text)
                        {
                            mann = Convert.ToString(dr1["MANGONNGU"]);
                            ls.set_mangonngu(mann);
                        }
                    }
                    KetNoi.closeconnect();

                    KetNoi.setconnect();
                    SqlDataReader dr3 = txdl.lay_reader("select *from LOAISACH");
                    while (dr3.Read())
                    {
                        if (Convert.ToString(dr3["TENLOAISACH"]) == cblsach.Text)
                        {
                            maloai = Convert.ToString(dr3["MALOAISACH"]);
                            ls.set_maloai(maloai);
                        }
                    }

                    KetNoi.setconnect();
                    SqlDataReader dr2 = txdl.lay_reader("select *from NXB");
                    while (dr2.Read())
                    {
                        if (Convert.ToString(dr2["TENNXB"]) == cbNXB.Text)
                        {
                            maxb = Convert.ToString(dr2["MANXB"]);
                            ls.set_manhaxuatban(maxb);
                        }
                    }
                    KetNoi.closeconnect();

                    KetNoi.setconnect();
                    SqlDataReader dr4 = txdl.lay_reader("select *from TACGIA");
                    while (dr4.Read())
                    {
                        if (Convert.ToString(dr4["HOTEN"]) == cbtacgia.Text)
                        {
                            matg = Convert.ToString(dr4["MATACGIA"]);
                            ls.set_matacgia(matg);
                        }
                    }
                    KetNoi.closeconnect();

                    KetNoi.setconnect();
                    SqlDataReader dr = txdl.lay_reader("SELECT *FROM NHACUNGCAP");
                    while (dr.Read())
                    {
                        if (Convert.ToString(dr["TENNCC"]) == cbncc.Text)
                        {
                            mancc = Convert.ToString(dr["MANCC"]);
                            ls.set_mancc(mancc);
                        }
                    }
                    KetNoi.closeconnect();

                    if (ls.taomoisach())
                    {
                        if (ls.taomoisangtac())
                        {
                            MessageBox.Show("Thêm sách thành công", "Thông Báo");
                            frCapNhatSach_Load(null, null);
                        }
                        else MessageBox.Show("Lỗi Sáng tác", "Thông Báo");
                    }
                    else MessageBox.Show("Lỗi sách", "Thông Báo");
                }
                catch (Exception Ex)
                {
                    MessageBox.Show("error" + Ex.ToString());
                }
                btthem.Text = "Thêm";
                close_box();
                empty_box();
                btsua.Enabled = true;
                btxoa.Enabled = true;
            }
        }
        public void load_group()
        {
            ArrayList arr, arr1, arr2, arr3, arr4, arr5;
            arr = new ArrayList();
            Truyxuatdulieu txdl = new Truyxuatdulieu();
            SqlDataReader dr = txdl.lay_reader("select *from LOAISACH");
            while (dr.Read())
            {
                arr.Add(dr["TENLOAISACH"]);
            }
            cblsach.DataSource = arr;
            KetNoi.closeconnect();

            KetNoi.setconnect();
            arr1 = new ArrayList();
            SqlDataReader dr1 = txdl.lay_reader("select *from TACGIA");
            while (dr1.Read())
            {
                arr1.Add(dr1["HOTEN"]);
            }
            cbtacgia.DataSource = arr1;
            KetNoi.closeconnect();

            KetNoi.setconnect();
            arr2 = new ArrayList();
            SqlDataReader dr2 = txdl.lay_reader("select *from NXB");
            while (dr2.Read())
            {
                arr2.Add(dr2["TENNXB"]);
            }
            cbNXB.DataSource = arr2;
            KetNoi.closeconnect();

            KetNoi.setconnect();
            arr3 = new ArrayList();
            SqlDataReader dr3 = txdl.lay_reader("select *from NGONNGU");
            while (dr3.Read())
            {
                arr3.Add(dr3["NGONNGU"]);
            }
            cbngonngu.DataSource = arr3;
            KetNoi.closeconnect();

            KetNoi.setconnect();
            arr4 = new ArrayList();
            SqlDataReader dr4 = txdl.lay_reader("select *from NHACUNGCAP");
            while (dr4.Read())
            {
                arr4.Add(dr4["TENNCC"]);
            }
            cbncc.DataSource = arr4;
            KetNoi.closeconnect();

            KetNoi.setconnect();
            arr5 = new ArrayList();
            SqlDataReader dr5 = txdl.lay_reader("select *from VITRI");
            while (dr5.Read())
            {
                arr5.Add(dr5["MAVT"]);
            }
            cbvitriluutru.DataSource = arr5;
            KetNoi.closeconnect();
        }

        private void btxoa_Click(object sender, EventArgs e)
        {
            if (btxoa.Text == "Xóa")
            {
                tbmasach.Enabled = true;
                MessageBox.Show("Nhập vào mã sách cần xóa", "Thông Báo");
                btxoa.Text = "xác nhận";
                btthem.Enabled = false;
                btsua.Enabled = false;
            }
            else if (btxoa.Text == "xác nhận")
            {
                tbmasach.Enabled = false;

                Truyxuatdulieu txdl = new Truyxuatdulieu();
                SqlCommand sc = new SqlCommand();
                sc.CommandText = " SELECT *FROM SACH,LOAISACH,NGONNGU,NXB,TACGIA,SANGTAC,NHACUNGCAP,VITRI where SACH.MASACH='" + tbmasach.Text + "' AND SACH.MANGONNGU=NGONNGU.MANGONNGU AND SACH.MALOAISACH=LOAISACH.MALOAISACH AND SACH.MAVT=VITRI.MAVT AND SACH.MANCC=NHACUNGCAP.MANCC AND SACH.MANXB=NXB.MANXB AND SACH.MASACH=SANGTAC.MASACH AND TACGIA.MATACGIA=SANGTAC.MATACGIA";
                SqlDataReader dr = txdl.lay_reader(sc.CommandText);
                while (dr.Read())
                {
                    tbtensach.Text = Convert.ToString(dr["TENSACH"]);
                    tbgia.Text = Convert.ToString(dr["GIA"]);
                    cbvitriluutru.Text = Convert.ToString(dr["MAVT"]);
                    cbncc.Text = Convert.ToString(dr["TENNCC"]);
                    tbnamxb.Text = Convert.ToString(dr["NAMXUATBAN"]);
                    cbngonngu.Text = Convert.ToString(dr["NGONNGU"]);
                    cbtacgia.Text = Convert.ToString(dr["HOTEN"]);
                    cblsach.Text = Convert.ToString(dr["TENLOAISACH"]);
                    cbNXB.Text = Convert.ToString(dr["TENNXB"]);
                    tblxuatban.Text = Convert.ToString(dr["LANXUATBAN"]);
                }
                btxoa.Text = "Chấp Nhận";
                MessageBox.Show("Xác Nhận Thông Tin để xóa", "Thông Báo");
            }

            else if (btxoa.Text == "Chấp Nhận")
            {
                Sach ls = new Sach();
                ls.set_masach(tbmasach.Text);
                tbgia.Text = ls.get_masach();

                if (ls.xoasangtac())
                {
                    if (ls.xoasach())
                    {
                        MessageBox.Show("Đã xóa thành công", "Thông Báo");
                        frCapNhatSach_Load(null, null);
                    }
                    else MessageBox.Show("có lỗi ko xóa được sách", "Thông Báo");
                }
                else MessageBox.Show("có lỗi ko xóa được sáng tác", "thông báo");
                empty_box();
                close_box();
                btxoa.Text = "Xóa";
                btthem.Enabled = false;
                btsua.Enabled = false;
            }
        }
        bool kt = false;

        private void btsua_Click(object sender, EventArgs e)
        {
            if (btsua.Text == "Sữa")
            {
                tbmasach.Enabled = true;
                MessageBox.Show("Nhập vào mã sách cần sữa", "Thông Báo");
                btsua.Text = "xác nhận";
                btthem.Enabled = false;
                btxoa.Enabled = false;
            }

            else if (btsua.Text == "xác nhận")
            {
                KetNoi.setconnect();
                SqlCommand sc1 = new SqlCommand();
                sc1.CommandText = "SELECT SACH.MASACH FROM SACH";
                sc1.Connection = KetNoi.scn;
                SqlDataReader dr1 = sc1.ExecuteReader();
                while (dr1.Read())
                {
                    if (tbmasach.Text.Equals(dr1["MASACH"].ToString().Trim(), StringComparison.CurrentCultureIgnoreCase))
                        kt = true;
                }

                if (kt)
                {
                    load_group();
                    Truyxuatdulieu txdl = new Truyxuatdulieu();
                    SqlCommand sc = new SqlCommand();
                    sc.CommandText = "select *from SACH,LOAISACH,NGONNGU,NXB,TACGIA,SANGTAC,NHACUNGCAP,VITRI where SACH.MASACH='" + tbmasach.Text + "' AND SACH.MANGONNGU=NGONNGU.MANGONNGU AND SACH.MALOAISACH=LOAISACH.MALOAISACH AND SACH.MAVT=VITRI.MAVT AND SACH.MANCC=NHACUNGCAP.MANCC AND SACH.MANXB=NXB.MANXB AND SACH.MASACH=SANGTAC.MASACH AND TACGIA.MATACGIA=SANGTAC.MATACGIA";
                    SqlDataReader dr = txdl.lay_reader(sc.CommandText);
                    while (dr.Read())
                    {
                        tbtensach.Text = Convert.ToString(dr["TENSACH"]);
                        tbgia.Text = Convert.ToString(dr["GIA"]);
                        cbncc.Text = Convert.ToString(dr["TENNCC"]);
                        cbvitriluutru.Text = Convert.ToString(dr["MAVT"]);
                        tbnamxb.Text = Convert.ToString(dr["NAMXUATBAN"]);
                        cbngonngu.Text = Convert.ToString(dr["NGONNGU"]);
                        cbtacgia.Text = Convert.ToString(dr["HOTEN"]);
                        cblsach.Text = Convert.ToString(dr["TENLOAISACH"]);
                        cbNXB.Text = Convert.ToString(dr["TENNXB"]);
                        tblxuatban.Text = Convert.ToString(dr["LANXUATBAN"]);
                    }
                    btsua.Text = "Chấp Nhận";
                    open_box();
                    tbmasach.Enabled = false;
                }
                else MessageBox.Show("Phải nhập đúng mã sách", "Thông Báo");
            }
            else if (btsua.Text == "Chấp Nhận")
            {
                string maloai, matg, mann, maxb, mancc;
                Sach ls = new Sach();
                ls.set_masach(tbmasach.Text);
                ls.set_gia(Convert.ToInt16(tbgia.Text.Substring(0, 5)));
                ls.set_tensach(tbtensach.Text);
                ls.set_lanxuatban(Convert.ToInt16(tblxuatban.Text));
                ls.set_namxuaban(Convert.ToInt16(tbnamxb.Text));
                ls.set_mavitri(cbvitriluutru.Text);
                Truyxuatdulieu txdl = new Truyxuatdulieu();
                KetNoi.setconnect();
                SqlDataReader dr1 = txdl.lay_reader("select *from NGONNGU");
                while (dr1.Read())
                {
                    if (Convert.ToString(dr1["NGONNGU"]) == cbngonngu.Text)
                    {
                        mann = Convert.ToString(dr1["MANGONNGU"]);
                        ls.set_mangonngu(mann);
                    }
                }
                KetNoi.closeconnect();

                KetNoi.setconnect();
                SqlDataReader dr3 = txdl.lay_reader("select *from LOAISACH");
                while (dr3.Read())
                {
                    if (Convert.ToString(dr3["TENLOAISACH"]) == cblsach.Text)
                    {
                        maloai = Convert.ToString(dr3["MALOAISACH"]);
                        ls.set_maloai(maloai);
                    }
                }

                KetNoi.setconnect();
                SqlDataReader dr2 = txdl.lay_reader("select *from NXB");
                while (dr2.Read())
                {
                    if (Convert.ToString(dr2["TENNXB"]) == cbNXB.Text)
                    {
                        maxb = Convert.ToString(dr2["MANXB"]);
                        ls.set_manhaxuatban(maxb);
                    }
                }
                KetNoi.closeconnect();

                KetNoi.setconnect();
                SqlDataReader dr = txdl.lay_reader("select *from TACGIA");
                while (dr.Read())
                {
                    if (Convert.ToString(dr["HOTEN"]) == cbtacgia.Text)
                    {
                        matg = Convert.ToString(dr["MATACGIA"]);
                        ls.set_matacgia(matg);
                    }
                }
                KetNoi.closeconnect();

                KetNoi.setconnect();
                SqlDataReader dr4 = txdl.lay_reader("select *from NHACUNGCAP");
                while (dr4.Read())
                {
                    if (Convert.ToString(dr4["TENNCC"]) == cbncc.Text)
                    {
                        mancc = Convert.ToString(dr4["MANCC"]);
                        ls.set_mancc(mancc);
                    }
                }
                KetNoi.closeconnect();
                if (ls.capnhatsach())
                {
                    if (ls.capnhatsachtac())
                    {
                        MessageBox.Show("Đã update thành công", "Thông Báo");
                        frCapNhatSach_Load(null, null);
                        btthem.Enabled = true;
                        btxoa.Enabled = false;
                    }
                    else MessageBox.Show("có lỗi ko cập nhật được sáng tác", "thông báo");
                }
                else MessageBox.Show("có lỗi ko cập nhật được sách", "Thông Báo");
                empty_box();
                close_box();
                btsua.Text = "Sữa";
                btthem.Enabled = true;
                btxoa.Enabled = false;
            }
        }

        private void btthoat_Click(object sender, EventArgs e)
        {
            listView1.Clear();
            this.Hide();
        }

    }
}
